%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% File:               log_likelihood3.m
%
% Authors:            Sergio Ascencio and Miguel Rueda
%
% Description:        Log likelihood function for two step ML estimator (3 players).
%
% Language:           MATLAB R2013b (8.2.0.701) 64 Bit
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


function [auxLL,Llong]=aux_log_likelihood3(beta,Y_PRI,Y_PAN,Y_PRD,X_PRI,X_PAN,X_PRD)

betas=reshape(beta,[size(X_PAN,2),6]);

%Base outcome is L (minimum representation) order of coefficients L, M, H
betas_PRI=[zeros(size(X_PRI,2),1) betas(:,1:2)];
betas_PAN=[zeros(size(X_PAN,2),1) betas(:,3:4)];
betas_PRD=[zeros(size(X_PAN,2),1) betas(:,5:6)];

y_PRD=dummyvar(Y_PRD+1);
y_PAN=dummyvar(Y_PAN+1);
y_PRI=dummyvar(Y_PRI+1);

p_PRD=exp(X_PRD*betas_PRD)./kron(ones(1,size(y_PRD,2)),sum(exp(X_PRD*betas_PRD),2));
p_PAN=exp(X_PAN*betas_PAN)./kron(ones(1,size(y_PAN,2)),sum(exp(X_PAN*betas_PAN),2));
p_PRI=exp(X_PRI*betas_PRI)./kron(ones(1,size(y_PRI,2)),sum(exp(X_PRI*betas_PRI),2));

Llong=sum(y_PAN.*log(p_PAN)+y_PRI.*log(p_PRI)+y_PRD.*log(p_PRD),2);
auxLL=-sum(sum(y_PAN.*log(p_PAN)+y_PRI.*log(p_PRI)+y_PRD.*log(p_PRD),2).^2);
end

